#include<stdio.h>
const int maxn=100;
const int k=100000007;
long long g(int a,int b)
{
	if(b==0) return a*a;
	else     return g(b,a%b);
}
int main()
{
  	long long sum=0;
  	int n;
	long long x[maxn][maxn];
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			x[i][j]=g(i+1,j+1);
			sum+=x[i][j];
		}
	}
	for(int i=1;i<100;i++){
    	if(sum>k)
      		sum=sum%k;
    	else  
      		break;
  	}
	printf("%lld",sum);
	return 0;
}
